package pe.com.hermes.hermetic.web.controller.reportes;

import pe.com.hermes.hermetic.beans.AuditBean;
import pe.com.hermes.hermetic.negocio.service.HermeticFacade;
import pe.com.hermes.hermetic.negocio.ultil.ConstantesHermetic;
import pe.com.hermes.hermetic.negocio.ultil.Util;
import pe.com.hermes.hermetic.web.controller.base.IController;
import pe.com.hermes.hermetic.web.controller.base.IWebOpciones;
import pe.com.hermes.hermetic.web.controller.general.MostrarReporteController;
import pe.com.hermes.hermetic.web.forms.HMF4015Form;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;


/**** Modificado 20101118 YNFR *****/

@RequestMapping("/mostrarHWF4015.html")
@Controller
@SessionAttributes(value={"form","codOpci","desOpci"})
public class CargosdeIngresoController implements IController{

        private Logger logger = Logger.getLogger(this.getClass());
        
        @Autowired
        private HermeticFacade servicioHermetic;
        
        @Autowired
        private MostrarReporteController reporteFactory;
        
        @RequestMapping(method=RequestMethod.GET)
        protected String showForm(ModelMap model, HttpServletRequest request) throws Exception {

            HttpSession session = request.getSession(false);        
            if (request.getSession().getAttribute("usuario") == null)
                return FORM_SESSION_FINISH;

            List listaTransacciones = (List)session.getAttribute("listaMenu3");
            if (!Util.validaAccesoOpcion(listaTransacciones, ConstantesHermetic.REPORTE_CARGOS_DE_INGRESO)) {
                return FORM_ACCESS_NULL_VIEW;
            }

            String cliente = (String)request.getSession().getAttribute("cliente");
            String sucursal = (String)request.getSession().getAttribute("sucursal");

            HMF4015Form form = new HMF4015Form();
            form.setControl(ConstantesHermetic.CTE_CONTROL_ACTIVO);
            
            try {
            
                Util utilidad = new Util();
                form.setFechadesde(utilidad.getFechaActual());
                form.setFechahasta(utilidad.getFechaActual());
                form.setCliente(cliente);
                form.setSucursal(sucursal);
                AuditBean auditBean = new AuditBean(CARG_INGR);
                servicioHermetic.inseAudit(auditBean);
                String codOpci = IWebOpciones.CARG_INGR;
                String desOpci = servicioHermetic.getDesOpci(codOpci, request);
                model.put("codOpci",codOpci);
                model.put("desOpci",desOpci);
                model.put(FORM_KEY,form);  
            } catch (Exception e) {
                e.printStackTrace();
                logger.error("Error en el proceso. "+ e);
                return FORM_ERROR_VIEW;
            }        

            return FORM_CARGOS_DE_INGRESO_VIEW ;
        }
      
        @RequestMapping(params="accion=mostrarReporte")
        protected void mostrarReporte(HttpServletRequest request,HttpServletResponse response) throws Exception{
        logger.info("mostrarReporte");      
        String codClie=(String)request.getSession(false).getAttribute("cliente");
        reporteFactory.mostraReporte(request,response,codClie);
            
    }
      
   
}
